// 所有的请求都放在 api 文件夹下面，方便管理和维护
import axios from 'axios'; // 引入 axios 用做请求的
import {
    Toast
} from 'vant'; // 引入加载提示
const api = axios.create({
    baseURL: 'https://api.it120.cc/small4', // 所有请求的公共地址部分
    timeout: 3000 // 请求超时时间 这里的意思是当请求时间超过5秒还未取得结果时 提示用户请求超时
})

// 请求相关处理 请求拦截 在请求拦截中可以补充请求相关的配置
// interceptors axios的拦截器对象
api.interceptors.request.use(config => { // 
    // config 请求的所有信息
    // console.log(config);
    Toast({
        // message: '自定义图片',
        duration: 0,
        iconSize: '80px',
        icon: 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc-ssl.duitang.com%2Fuploads%2Fitem%2F201808%2F01%2F20180801230124_hyFUW.thumb.1000_0.gif&refer=http%3A%2F%2Fc-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1638521169&t=3f108d8890def7282bf2075f8e0bd38f',
    });
    return config // 将配置完成的config对象返回出去 如果不返回 请求讲不会进行
}, err => {
    // 请求发生错误时的相关处理 抛出错误
    Promise.reject(err)
})


api.interceptors.response.use(res => {
    // 我们一般在这里处理，请求成功后的错误状态码 例如状态码是500，404，403
    // res 是所有相应的信息
    // console.log(res)
    if (res.status == 200) {
        Toast.clear();
    }
    return Promise.resolve(res.data)
}, err => {
    // 服务器响应发生错误时的处理
    Promise.reject(err)
})


export default api